package org.acm.seguin.parser.build; import org.acm.seguin.parser.ast.ASTAdditiveExpression; import org.acm.seguin.parser.ast.ASTAndExpression; import org.acm.seguin.parser.ast.ASTConditionalAndExpression; import org.acm.seguin.parser.ast.ASTConditionalExpression; import org.acm.seguin.parser.ast.ASTConditionalOrExpression; import org.acm.seguin.parser.ast.ASTEqualityExpression; import org.acm.seguin.parser.ast.ASTExclusiveOrExpression; import org.acm.seguin.parser.ast.ASTExpression; import org.acm.seguin.parser.ast.ASTInclusiveOrExpression; import org.acm.seguin.parser.ast.ASTInstanceOfExpression; import org.acm.seguin.parser.ast.ASTMultiplicativeExpression; import org.acm.seguin.parser.ast.ASTName; import org.acm.seguin.parser.ast.ASTPostfixExpression; import org.acm.seguin.parser.ast.ASTPrimaryExpression; import org.acm.seguin.parser.ast.ASTPrimaryPrefix; import org.acm.seguin.parser.ast.ASTRelationalExpression; import org.acm.seguin.parser.ast.ASTShiftExpression; import org.acm.seguin.parser.ast.ASTUnaryExpression; import org.acm.seguin.parser.ast.ASTUnaryExpressionNotPlusMinus; /** * This object builds an expression. The first method builds * an expression based on the name of the argument. * *@author Chris Seguin */ public class BuildExpression { /** * Builds an expression based on a name * *@param name the name of the field or parameter *@return the expression */ public ASTExpression buildName(String name) { ASTExpression expression = new ASTExpression(0); ASTConditionalExpression condExpression = new ASTConditionalExpression(0); expression.jjtAddChild(condExpression, 0); ASTConditionalOrExpression condOrExpression = new ASTConditionalOrExpression(0); condExpression.jjtAddChild(condOrExpression, 0); ASTConditionalAndExpression condAndExpression = new ASTConditionalAndExpression(0); condOrExpression.jjtAddChild(condAndExpression, 0); ASTInclusiveOrExpression inclOrExpression = new ASTInclusiveOrExpression(0); condAndExpression.jjtAddChild(inclOrExpression, 0); ASTExclusiveOrExpression exclOrExpression = new ASTExclusiveOrExpression(0); inclOrExpression.jjtAddChild(exclOrExpression, 0); ASTAndExpression andExpression = new ASTAndExpression(0); exclOrExpression.jjtAddChild(andExpression, 0); ASTEqualityExpression equalExpression = new ASTEqualityExpression(0); andExpression.jjtAddChild(equalExpression, 0); ASTInstanceOfExpression instanceOfExpression = new ASTInstanceOfExpression(0); equalExpression.jjtAddChild(instanceOfExpression, 0); ASTRelationalExpression relationalExpression = new ASTRelationalExpression(0); instanceOfExpression.jjtAddChild(relationalExpression, 0); ASTShiftExpression shiftExpression = new ASTShiftExpression(0); relationalExpression.jjtAddChild(shiftExpression, 0); ASTAdditiveExpression addExpression = new ASTAdditiveExpression(0); shiftExpression.jjtAddChild(addExpression, 0); ASTMultiplicativeExpression multExpression = new ASTMultiplicativeExpression(0); addExpression.jjtAddChild(multExpression, 0); ASTUnaryExpression unaryExpression = new ASTUnaryExpression(0); multExpression.jjtAddChild(unaryExpression, 0); ASTUnaryExpressionNotPlusMinus uenpm = new ASTUnaryExpressionNotPlusMinus(0); unaryExpression.jjtAddChild(uenpm, 0); ASTPostfixExpression postfixExpression = new ASTPostfixExpression(0); uenpm.jjtAddChild(postfixExpression, 0); ASTPrimaryExpression primaryExpression = new ASTPrimaryExpression(0); postfixExpression.jjtAddChild(primaryExpression, 0); ASTPrimaryPrefix primaryPrefix = new ASTPrimaryPrefix(0); primaryExpression.jjtAddChild(primaryPrefix, 0); ASTName nameNode = new ASTName(0); nameNode.addNamePart(name); primaryExpression.jjtAddChild(nameNode, 0); return expression; } }